#pragma once

/* F7F882ED-485E-431F-A7D9-E6D57E85A59D */
DEFINE_GUID(CLSID_MediaBridgeSourceFilter, 
0xf7f882ed, 0x485e, 0x431f, 0xa7, 0xd9, 0xe6, 0xd5, 0x7e, 0x85, 0xa5, 0x9d);

/* F6C85824-91E5-45CC-8C09-1AB8ABC6FDD6 */
DEFINE_GUID(CLSID_MediaBridgeSourceFilterPropertyPage, 
0xf6c85824, 0x91e5, 0x45cc, 0x8c, 0x9, 0x1a, 0xb8, 0xab, 0xc6, 0xfd, 0xd6);

#ifdef __cplusplus
extern "C" {
#endif

DEFINE_GUID(nullGuid, 
		0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0);

/* FDDEB397-2269-4441-B924-E6991F4A0431 */
DEFINE_GUID(IID_IMediaBridgeCallback, 
0xfddeb397, 0x2269, 0x4441, 0xb9, 0x24, 0xe6, 0x99, 0x1f, 0x4a, 0x4, 0x31);

DECLARE_INTERFACE_(IMediaBridgeCallback, IUnknown)
{
    STDMETHOD(FillBuffer) (THIS_
                IMediaSample *pSample
             ) PURE;

};

/* FDDEB397-2169-4441-B924-E6991F4A0431 */
DEFINE_GUID(IID_IMediaBridgeSourceFilter, 
0xfddeb397, 0x2169, 0x4441, 0xb9, 0x24, 0xe6, 0x99, 0x1f, 0x4a, 0x4, 0x31);

DECLARE_INTERFACE_(IMediaBridgeSourceFilter, IUnknown)
{
    STDMETHOD(InitializeVideo) 
			(THIS_
                int		VideoPixelWidth, 
				int		VideoPixelHeight, 
				int		BitCount, 
				DWORD	FourCC, 
				GUID	MediaSubType
             ) PURE;

    STDMETHOD(SetCallback) 
			(THIS_
				IMediaBridgeCallback *CallbackInstance
			) PURE;
};

#ifdef __cplusplus
}
#endif

